package com.faya.green.service;

import com.faya.green.model.Authority;
import com.faya.green.model.web.UserRoleAuthor;

import java.util.List;

/**
 * 权限业务层
 */
public interface AuthorityService {

	/**
	 * 根据主键查询权限
	 * @param id 主键
	 * @return
	 */
	Authority getAuthorityById(String id);

	/**
	 * 更新权限
	 * @param authority
	 */
	void updateAuthority(Authority authority);

	/**
	 * 新增权限
	 * @param authority
	 * @return
	 */
	void addAuthority(Authority authority);

	/**
	 * 获取全部的权限数据
	 * @return
	 */
	List<Authority> getAuthorList();

	/**
	 * 更新或新增权限
	 * @param authority 权限数据
	 */
	void addOrUpdAuthority(Authority authority);

	/**
	 * 删除权限(物理删除)
	 * @param authorId 权限ID
	 */
	void delAuthor(String authorId);

	/**
	 * 删除权限（逻辑删除）
	 * @param authorId 权限ID
	 */
	void delAuthorLogic(String authorId);

	/**
	 * 根据角色ID查询出权限
	 * @param roleId 角色ID
	 * @return
	 */
	List<Authority> getAuthorByRoleId(String roleId);


	/**
	 * 根据用户id获取 用户、权限、角色关系
	 * @param userId 用户id
	 * @return
	 */
	List<UserRoleAuthor> getUserRoleAuthorByUid(String userId);
}